Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Розробка та реалізація компонент системного програмного забезпечення

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра СКС

Інформація про роботу

Рік:
2012
Тип роботи:
Курсовий проект
Предмет:
Комп’ютерна схемотехніка

Частина тексту файла

Міністерство освіти і науки, молоді та спорту України Національний університет “Львівська політехніка” Кафедра СКС Курсовий проект На тему: “ Розробка та реалізація компонент системного програмного забезпечення ” Львів 2012 Зміст Завдання на курсовий прооект..........................................................................................3 Формальний опис вхіднрї мови програмування............................................................3 Розробка компілятора вхідної мови програмування.....................................................5 Розробка лексичного аналізатора................................................................................5 Розробка синтаксичного аналізатора..........................................................................6 Розробка семантичного аналізатора............................................................................6 Розробка оптимізатора коду..........................................................................................8 Розробка генератора коду..............................................................................................8 Відладка та тестування компілятора................................................................................9 Висновки...............................................................................................................................12 Література.............................................................................................................................13 Додаток А - Лістинг програми компілятора вхідної мови програмування...................14 Додаток Б - Лістинг тестових програм на вхідній мові програмування .......................32 1. Завдання на курсовий проект Розробити компілятор заданої вхідної мови програмування, до якої висуваються наступні вимоги. Реалізувати три типи даних: логічний тип даних (boolean), знаковий цілочисельний тип та беззнаковий цілочисельний тип розміром 1 байт. Реалізувати можливість використання змінних з іменами довільної довжини. Реалізувати арифметичні операції: +, -, *, /, “-” (унарний мінус), відкриваюча: “(“ та закриваюча: “)” дужки та додаткову арифметичну операцію % (залишок від ділення). Реалізувати логічні операції: <, >, ==, != та додаткову логічну операцію ! (логічне “не”). Реалізувати наступні структури управління: оператор присвоєння, оператори блоку, оператор виводу, оператор виконання дії за умовою, оператор циклу while - do. Цільова мова компілятора: асемблер (i86). Для отримання виконавчого файлу на виході розробленого компілятора скористатися програмами tasm.exe (компілятор мови асемблера) і tlink.exe (редактор зв’язків). Мова розробки компілятора: ANSI C або C++ (платформа win32). Реалізувати інтерфейс командного рядка. На вхід розробленого компілятора має подаватися текстовий файл, написаний на заданій мові програмування. На виході розробленого компілятора мають з’являтися чотири файли: файл з повідомленнями про помилки (або про їх відсутність), файл на мові асемблера, об’єктний та виконавчий файли. 2. Формальний опис вхідної мови програмування Одною з перших задач, що виникають при побудові компілятора, є визначення вхідної мови програмування. Для цього використовують різні способи формального опису. В своїй курсовій роботі я використав розширену нотацію Бекуса-Наура (Backus/Naur Form - BNF). Опис вхідної мови : - три типи даних: логічний, беззнакове ціле, знакове ціле; - змінні довільної довжини; - арифметичні операції над цілими: +, -, *, /,%; - символи групування арифметичних операцій: “(”, “)”; - логічні операції над цілими: <, >, ==, !=; - логічна операція над логічними: !; - оператор присвоєння: “=” ; - оператори блоку: “{”, “}”; - оператор виконання дії за умовою: if-then-else; – оператор виводу print; - оператор циклу: while. Визначимо окремі термінальні символи та нерозривні набори термінальних символів (ключові слова): { }...
Антиботан аватар за замовчуванням

21.11.2013 11:11

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини